package com.client.elements.normal.boxes;

import com.google.gwt.event.logical.shared.ValueChangeEvent;
import com.google.gwt.event.logical.shared.ValueChangeHandler;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.Widget;

public class TimeDatebox {
	public static Widget timeDatebox(){
		//Elemente erzeugen
		final HTML hinweis = new HTML("hh:mm TT.MM.JJJJ");
		final TextBox zeitdatum = new TextBox();
		zeitdatum.setText("");
		zeitdatum.addStyleName("red_Background");

		//Elemente hinzufuegen
		FlowPanel panel = new FlowPanel();
		panel.add(hinweis);
		panel.add(zeitdatum);

		zeitdatum.addValueChangeHandler(new ValueChangeHandler<String>() {
			@Override
			public void onValueChange(ValueChangeEvent<String> event) {
				String zeit_ueberprueft = ueberpruefeZeitDatum(zeitdatum.getValue());
				if (zeit_ueberprueft == null) {
					zeitdatum.addStyleName("red_Background");
				}else {
					zeitdatum.setValue(zeit_ueberprueft);
					zeitdatum.removeStyleName("red_Background");

				}
			}
		});
		return panel;
	}

	private static String ueberpruefeZeitDatum(String zeitdatum){
		//Es muss ein Leerzeichen vorhanden sein
		int anzahlLeerzeichen = 0;
		for (int i = 0; i < zeitdatum.length(); i++) {
			if (zeitdatum.substring(i, i+1).equals(" ")) {
				anzahlLeerzeichen++;
			}
		}
		if (anzahlLeerzeichen!=1) {
			return null;
		}

		String zeit = zeitdatum.substring(0, zeitdatum.indexOf(" "));
		String datum = zeitdatum.substring(zeitdatum.indexOf(" ") + 1, zeitdatum.length());

		String zeit_ueberprueft = Timebox.ueberpruefeZeit(zeit);
		String datum_ueberprueft = Datebox.ueberpruefeFormat(datum);
		if ((datum_ueberprueft == null)||(zeit_ueberprueft == null)) {
			return null;
		}

		return zeit_ueberprueft + " " + datum_ueberprueft;
	}
}
